package com.jd.platform.sample4.controller;

import com.jd.platform.sample4.entity.pojo.Produce;
import com.jd.platform.sample4.service.Produce2Service;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("produce2")
@RequiredArgsConstructor
public class Produce2Controller2 {
    private final Produce2Service produce2Service;

    /**
     * 根据ID从Redis查询商品（支持指定返回属性）
     * 请求地址：http://localhost:8072/produce2/0
     */
    @GetMapping("/0")
    public void getByIdRedis() { // 在url的?后面
        long id = 0;
        String attribute = "name";
        for(int i=0;i<20;i++) {
            try {
                Object result = produce2Service.getById_Redis(id, attribute);
                if (result == null) {
                    System.out.println("商品不存在");
                }
                System.out.println("成功了");
            } catch (Exception e) {
                System.out.println("查询失败：" + e.getMessage());
            }
        }
    }

    /**
     * 新增或更新商品（同步到Redis）
     * 请求地址：http://localhost:8072/produce2/saveOrUpdate
     */
    @PostMapping("/saveOrUpdate")
    public void insertOrUpdateRedis() {
        Produce produce=Produce.builder()
                .id(1L)
                .name("鱼")
                .price("30")
                .build();

        for(int i=0;i<20;i++) {
            try {
                produce2Service.InsertOrUpdate_Redis(produce);
                System.out.println("操作成功");
            } catch (Exception e) {
                System.out.println("操作失败：" + e.getMessage());
            }
        }
    }

    /**
     * 根据ID删除商品（同步从Redis删除）
     * 请求地址：http://localhost:8072/produce2/delete
     */
    @DeleteMapping("/delete")
    public void deleteByIdRedis() {
        long id = 1;
        try {
            produce2Service.deleteById_Redis(id);
            System.out.println("删除成功");
        } catch (Exception e) {
            System.out.println("删除失败：" + e.getMessage());
        }
    }
}
